package com.ssd.handler.wechat.response;

import cn.hutool.core.util.CharsetUtil;
import lombok.Data;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.util.EntityUtils;

/**
 * 表示微信响应的类，包含响应状态码和响应体数据
 *
 * @author cy
 * @version 1.0
 */
@Data
public class WeChatResponse {

    private int status; //响应状态码
    private String body; //响应体数据

    /**
     * 默认构造函数，用于创建一个空的WeChatResponse对象
     */
    public WeChatResponse() {

    }

    /**
     * 构造函数，用于创建一个WeChatResponse对象并初始化状态码和响应体数据
     *
     * @param response CloseableHttpResponse对象，用于提取响应状态码和响应体数据
     */
    public WeChatResponse(CloseableHttpResponse response) {
        // 初始化响应状态码
        this.status = response.getStatusLine().getStatusCode();
        try {
            // 将响应体数据转换为字符串并初始化
            this.body = EntityUtils.toString(response.getEntity(), CharsetUtil.UTF_8);
        } catch (Exception e) {
            // 如果出现异常，响应体为null
            this.body = null;
        }
    }

    /**
     * 检查响应状态码是否表示成功（200）
     *
     * @return 如果响应状态码为200，则返回true，否则返回false
     */
    public Boolean isOk() {
        return this.status == 200;
    }

}

